package com.fowo.api.model.tmp.settlement.report;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 亚马逊结算中心-交易明细临时表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class TmpSettlementReportImportPo {

  /** Settlement ID */
  @ExcelProperty("Settlement ID")
  @Size(max = 50, message = "Settlement ID长度不能超过50")
  private String settlementId;

  /** 结算开始日期 */
  @ExcelProperty("结算开始日期")
  @DateTimeString(message = "结算开始日期不是有效的时间日期格式")
  private String settlementStartDate;

  /** 结算结束日期 */
  @ExcelProperty("结算结束日期")
  @DateTimeString(message = "结算结束日期不是有效的时间日期格式")
  private String settlementEndDate;

  /** 存款日期 */
  @ExcelProperty("存款日期")
  @DateTimeString(message = "存款日期不是有效的时间日期格式")
  private String depositDate;

  /** 货币 */
  @ExcelProperty("货币")
  @Size(max = 50, message = "货币长度不能超过50")
  private String currency;

  /** 交易类型 */
  @ExcelProperty("交易类型")
  @Size(max = 50, message = "交易类型长度不能超过50")
  private String transactionType;

  /** 订单编号 */
  @ExcelProperty("订单编号")
  @Size(max = 50, message = "订单编号长度不能超过50")
  private String orderId;

  /** 卖家订单编号 */
  @ExcelProperty("卖家订单编号")
  @Size(max = 50, message = "卖家订单编号长度不能超过50")
  private String merchantOrderId;

  /** 盘点编号 */
  @ExcelProperty("盘点编号")
  @Size(max = 50, message = "盘点编号长度不能超过50")
  private String adjustmentId;

  /** 货件编号 */
  @ExcelProperty("货件编号")
  @Size(max = 50, message = "货件编号长度不能超过50")
  private String shipmentId;

  /** 商城名称 */
  @ExcelProperty("商城名称")
  @Size(max = 50, message = "商城名称长度不能超过50")
  private String marketplaceName;

  /** 金额类型 */
  @ExcelProperty("金额类型")
  @Size(max = 50, message = "金额类型长度不能超过50")
  private String amountType;

  /** 金额描述 */
  @ExcelProperty("金额描述")
  @Size(max = 500, message = "金额描述长度不能超过500")
  private String amountDescription;

  /** 金额 */
  @ExcelProperty("金额")
  @DecimalString(message = "金额小数格式不正确", label = "金额")
  private String amount;

  /** 配送类型 */
  @ExcelProperty("配送类型")
  @Size(max = 50, message = "配送类型长度不能超过50")
  private String fulfillmentId;

  /** 发布日期 */
  @ExcelProperty("发布日期")
  @DateString(message = "发布日期不是有效的日期格式")
  private String postedDate;

  /** 发布日期时间 */
  @ExcelProperty("发布日期时间")
  @DateTimeString(message = "发布日期时间不是有效的时间日期格式")
  private String postedDateTime;

  /** 订单商品编号 */
  @ExcelProperty("订单商品编号")
  @Size(max = 50, message = "订单商品编号长度不能超过50")
  private String orderItemCode;

  /** 卖家订单商品编号 */
  @ExcelProperty("卖家订单商品编号")
  @Size(max = 50, message = "卖家订单商品编号长度不能超过50")
  private String merchantOrderItemId;

  /** 卖家盘点商品编号 */
  @ExcelProperty("卖家盘点商品编号")
  @Size(max = 50, message = "卖家盘点商品编号长度不能超过50")
  private String merchantAdjustmentItemId;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** 购买数量 */
  @ExcelProperty("购买数量")
  @IntegerString(message = "购买数量数值格式不正确", label = "购买数量")
  private String quantityPurchased;

  /** 店铺 */
  @ExcelProperty("店铺")
  @LongString(message = "店铺数值格式不正确", label = "店铺", min = 0L)
  private String sid;

  /** 来源 */
  @ExcelProperty("来源")
  @Size(max = 100, message = "来源长度不能超过100")
  private String eventType;

  /** 报告类型 */
  @ExcelProperty("报告类型")
  @Size(max = 50, message = "报告类型长度不能超过50")
  private String accountType;

  /** 财务事件组id */
  @ExcelProperty("财务事件组id")
  @Size(max = 500, message = "财务事件组id长度不能超过500")
  private String financialEventGroupId;

  /** 结算状态 */
  @ExcelProperty("结算状态")
  @Size(max = 50, message = "结算状态长度不能超过50")
  private String processingStatus;

  /** 转账状态 */
  @ExcelProperty("转账状态")
  @Size(max = 50, message = "转账状态长度不能超过50")
  private String fundTransferStatus;

  /** 结算编号 */
  @ExcelProperty("结算编号")
  @Size(max = 50, message = "结算编号长度不能超过50")
  private String financialNo;

  /** 店铺名 */
  @ExcelProperty("店铺名")
  @Size(max = 50, message = "店铺名长度不能超过50")
  private String storeName;

  /** 亚马逊店铺id */
  @ExcelProperty("亚马逊店铺id")
  @Size(max = 50, message = "亚马逊店铺id长度不能超过50")
  private String sellerId;

  /** 国家 */
  @ExcelProperty("国家")
  @LongString(message = "国家数值格式不正确", label = "国家")
  private String countryCode;
}
